page.tsx 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. "use client";
  2. import HeaderBack from "@/components/HeaderBack";
  3. import { HappyWheelTypeEnum } from "@/enums";
  4. import clsx from "clsx";
  5. import React from "react";
  6. import ContainerBox from "./containerBox";
  7. import styles from "./page.module.scss";
  8. import TimeDown from "./timeDown";
  9. const Page = () => {
  10. const [curType, setCurType] = React.useState(HappyWheelTypeEnum.DAY);
  11. const wheelType = React.useMemo(() => {
  12. return [
  13. { title: "DIA", key: HappyWheelTypeEnum.DAY },
  14. { title: "SEM", key: HappyWheelTypeEnum.WEEK },
  15. { title: "MÊS", key: HappyWheelTypeEnum.MONTH },
  16. ];
  17. }, []);
  18. const typeChange = (data: any) => {
  19. setCurType(data.key);
  20. };
  21. return (
  22. <>
  23. <HeaderBack
  24. showBack={true}
  25. headerRender={() => (
  26. <div className="relative ml-[.43rem] flex h-[100%] w-full items-center justify-center py-[.05rem]">
  27. {wheelType.map((item) => {
  28. return (
  29. <div
  30. className={clsx("h-[100%] flex-1 leading-[1]", styles.typeItem)}
  31. key={item.key}
  32. onClick={() => typeChange(item)}
  33. >
  34. <div className="relative z-[3] flex h-[100%] flex-col items-center justify-center">
  35. <div className="mb-[2px] text-[12px] font-black">
  36. {item.title}
  37. </div>
  38. <TimeDown></TimeDown>
  39. </div>
  40. </div>
  41. );
  42. })}
  43. <div
  44. className={styles.typeSelected}
  45. style={{
  46. transform: `translateX(calc(${curType * 100}% + ${curType * 0.05}rem))`,
  47. }}
  48. ></div>
  49. </div>
  50. )}
  51. showService={false}
  52. className="!h-[.55rem]"
  53. />
  54. <main className={"main-header hasFlag stickyFlag"}>
  55. <div className="p-[.1rem]">
  56. <ContainerBox curType={curType}></ContainerBox>
  57. </div>
  58. </main>
  59. </>
  60. );
  61. };
  62. export default Page;